package day1;
//测试函数式接口
public class TestFunction {
    public static void main(String[] args) {
        //lambda表达式：是jdk1.8的特性，用来描述函数式接口的
        //语法：()->{}
        //():表示抽象方法的参数
        //->:就是一个固定的连接符
        //{}：表示抽象方法需要做方法实现部分
        //利用内部类
        two t=new two(){
            public void a(int a,int b){

            }
        };
        //利用lambda表达式来实现接口
        two t2=(a,b)->{
            System.out.println("如何呢？又能怎"+a+" "+b);
        };
        t2.a(100,200);
        //lambda表达式 如果方法带返回值，而且只有一行代码
        //正好就是方法的返回值{} return都可以省略
        three t3=(c,d)->{
            String num=c+d;
            int n=Integer.parseInt(num);
            return 0;};
        three t4=(c,d)-> Integer.parseInt(c+d);t4.a(100,"00");
    }
}
//普通接口：有1个以上的抽象方法
interface One{
    public void one();
    public void two();
    public void three(int a,String b);
}
//函数式接口：里面有且只有一个抽象方法
//使用@FunctionalInterface标注函数式接口
@FunctionalInterface
interface two{
    public void a(int a,int b);
    public default void b(){

    }
}
interface three{
    public int a(int a,String b);
}
